Data Processing & Cleaning for Exploratory Data Analysis¶

In [1]:
# The following Python packages will be used for data formatting and visualizations for EDA
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
import pandas as pd
import numpy as np
In [2]:
VideoGameDF = pd.read_csv("/Users/Andrew/Documents/backloggd_games.csv")

# Drop columns that will be irrelevant to the EDA & recommendation system
VideoGameDF = VideoGameDF.drop("Unnamed: 0", axis = 1)
VideoGameDF = VideoGameDF.drop("Playing", axis = 1)
VideoGameDF = VideoGameDF.drop("Backlogs", axis = 1)
VideoGameDF = VideoGameDF.drop("Wishlist", axis = 1)
VideoGameDF = VideoGameDF.drop("Lists", axis = 1)
VideoGameDF = VideoGameDF.drop_duplicates(keep = "last") # Remove the multiple duplicate rows found throughout the dataframe

VideoGameDF.rename(columns = {"Plays": "Total Players"}, inplace = True)
VideoGameDF.rename(columns = {"Rating": "Average Rating"}, inplace = True)
VideoGameDF.rename(columns = {"Reviews": "Total Reviews"}, inplace = True)

VideoGameDF.head(1)
Out[2]:
Title Release_Date Developers Summary Platforms Genres Average Rating Total Players Total Reviews
0 Elden Ring Feb 25, 2022 ['FromSoftware', 'Bandai Namco Entertainment'] Elden Ring is a fantasy, action and open world... ['Windows PC', 'PlayStation 4', 'Xbox One', 'P... ['Adventure', 'RPG'] 4.5 21K 3K

To make the dataframe more readable, we can use the release year for each respective game instead of its exact release date.¶

In [3]:
VideoGameDF['Release_Date'] = VideoGameDF['Release_Date'].replace('TBD', np.nan)
VideoGameDF["Release_Date"] = pd.to_datetime(VideoGameDF["Release_Date"])
VideoGameDF["Release_Date"] = VideoGameDF["Release_Date"].dt.year

VideoGameDF.dropna(subset=["Release_Date"], inplace = True)
VideoGameDF["Release_Date"] = VideoGameDF["Release_Date"].astype(int)

VideoGameDF.rename(columns = {"Release_Date": "Release Year"}, inplace = True)

# Since this dataset is from June 2023, we will not include games where the release year was planned to be after 2023 in case a change occurred.
VideoGameDF = VideoGameDF[VideoGameDF["Release Year"] <= 2023]
VideoGameDF.head(1)
Out[3]:
Title Release Year Developers Summary Platforms Genres Average Rating Total Players Total Reviews
0 Elden Ring 2022 ['FromSoftware', 'Bandai Namco Entertainment'] Elden Ring is a fantasy, action and open world... ['Windows PC', 'PlayStation 4', 'Xbox One', 'P... ['Adventure', 'RPG'] 4.5 21K 3K

Since the amount of total players and reviews is not in a numerical format, the dataframe cannot be filtered directly if we would like to remove rows that does not match a specific numerical range. Therefore, the "K" and "M" from each column will be removed and be used to change values to integers.¶

In [4]:
def ConvertLetter(ColumnValue):
    if "K" in ColumnValue:
        ColumnValue = float(ColumnValue.replace("K", "")) * 1000
    elif "M" in ColumnValue:
        ColumnValue = float(ColumnValue.replace("M", "")) * 1000000
    return int(ColumnValue)

VideoGameDF["Total Players"] = VideoGameDF["Total Players"].apply(ConvertLetter)
VideoGameDF["Total Reviews"] = VideoGameDF["Total Reviews"].apply(ConvertLetter)

VideoGameDF.head(1)
Out[4]:
Title Release Year Developers Summary Platforms Genres Average Rating Total Players Total Reviews
0 Elden Ring 2022 ['FromSoftware', 'Bandai Namco Entertainment'] Elden Ring is a fantasy, action and open world... ['Windows PC', 'PlayStation 4', 'Xbox One', 'P... ['Adventure', 'RPG'] 4.5 21000 3000

We can also remove the brackets and quotations from each column containing them to make the dataframe more readable.¶

In [5]:
VideoGameDF["Genres"] = VideoGameDF["Genres"].str.strip("[]")
VideoGameDF["Genres"] = VideoGameDF["Genres"].str.replace(r"'", "", regex = True)

VideoGameDF["Developers"] = VideoGameDF["Developers"].str.strip("[]")
VideoGameDF["Developers"] = VideoGameDF["Developers"].str.replace(r"'", "", regex = True)

VideoGameDF["Platforms"] = VideoGameDF["Platforms"].str.strip("[]")
VideoGameDF["Platforms"] = VideoGameDF["Platforms"].str.replace(r"'", "", regex = True)

VideoGameDF.head(10)
Out[5]:
Title Release Year Developers Summary Platforms Genres Average Rating Total Players Total Reviews
0 Elden Ring 2022 FromSoftware, Bandai Namco Entertainment Elden Ring is a fantasy, action and open world... Windows PC, PlayStation 4, Xbox One, PlayStati... Adventure, RPG 4.5 21000 3000
1 The Legend of Zelda: Breath of the Wild 2017 Nintendo, Nintendo EPD Production Group No. 3 The Legend of Zelda: Breath of the Wild is the... Wii U, Nintendo Switch Adventure, Puzzle 4.4 35000 3000
2 Hades 2018 Supergiant Games A rogue-lite hack and slash dungeon crawler in... Windows PC, Mac, PlayStation 4, Xbox One, Play... Adventure, Brawler, Indie, RPG 4.3 25000 2100
3 Hollow Knight 2017 Team Cherry A 2D metroidvania with an emphasis on close co... Windows PC, Mac, Linux, Nintendo Switch Adventure, Indie, Platform 4.4 25000 2100
4 Undertale 2015 tobyfox, 8-4 A small child falls into the Underground, wher... Windows PC, Mac, Linux, PlayStation 4, Xbox On... Adventure, Indie, RPG, Turn Based Strategy 4.2 32000 2500
5 Minecraft 2011 Mojang Studios Minecraft focuses on allowing the player to ex... Windows PC, Mac, Linux Adventure, Simulator 4.3 38000 2700
6 Omori 2020 OMOCAT, PLAYISM A turn-based surreal horror RPG in which a chi... Windows PC, Mac, PlayStation 4, Xbox One, Nint... Adventure, Indie, RPG, Turn Based Strategy 4.1 8700 1400
7 The Legend of Zelda: Tears of the Kingdom 2023 Nintendo The Legend of Zelda: Tears of the Kingdom is t... Nintendo Switch Adventure 4.6 4300 1100
8 Resident Evil 4 2023 Capcom, Capcom Development Division 1 Resident Evil 4 is a remake of the 2005 origin... Windows PC, PlayStation 4, PlayStation 5, Xbox... Adventure, Puzzle, Shooter 4.6 6100 1400
9 NieR: Automata 2017 PlatinumGames, Square Enix NieR: Automata tells the story of androids 2B,... Windows PC, PlayStation 4 Brawler, RPG 4.3 20000 1400
In [6]:
VideoGameDF.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 36851 entries, 0 to 59999
Data columns (total 9 columns):
 #   Column          Non-Null Count  Dtype  
---  ------          --------------  -----  
 0   Title           36851 non-null  object 
 1   Release Year    36851 non-null  int32  
 2   Developers      36851 non-null  object 
 3   Summary         35185 non-null  object 
 4   Platforms       36851 non-null  object 
 5   Genres          36851 non-null  object 
 6   Average Rating  19867 non-null  float64
 7   Total Players   36851 non-null  int64  
 8   Total Reviews   36851 non-null  int64  
dtypes: float64(1), int32(1), int64(2), object(5)
memory usage: 2.7+ MB
In [7]:
VideoGameDF.describe()
Out[7]:
Release Year Average Rating Total Players Total Reviews
count 36851.000000 19867.000000 36851.000000 36851.000000
mean 2010.325446 3.058851 328.056878 18.697295
std 10.571601 0.713488 1506.249394 91.686865
min 1952.000000 0.300000 -1.000000 0.000000
25% 2004.000000 2.600000 1.000000 0.000000
50% 2014.000000 3.100000 6.000000 0.000000
75% 2019.000000 3.600000 67.000000 4.000000
max 2023.000000 5.000000 38000.000000 3000.000000

Exploratory Data Analysis (EDA)¶

The following data visualization may not be visible and interactable on websites such as GitHub. To access this bar chart, download the Jupyter Notebook itself or the HTML file provided¶

In [8]:
bins = [0, 1, 2, 3, 4, 5]
labels = ['0.0 - 1.0', '1.0 - 2.0', '2.0 - 3.0', '3.0 - 4.0', '4.0 - 5.0']

VideoGameDF['Rating Range'] = pd.cut(VideoGameDF['Average Rating'], bins=bins, labels=labels, include_lowest=True)

rating_counts = VideoGameDF['Rating Range'].value_counts().sort_index()

fig = px.bar(x=rating_counts.index, y=rating_counts.values,
             labels={'x': 'Rating Interval', 'y': 'Number of Published Games'},
             title='Interactive Distribution of Games by User Rating')

fig.update_layout(title_x = 0.5)

fig.show()
In [9]:
GamesByYear = VideoGameDF["Release Year"].value_counts().reset_index()
GamesByYear.columns = ["Release Year", "Number of Games"]
GamesByYear = GamesByYear.sort_values("Release Year")

sns.lineplot(x = "Release Year", y = "Number of Games", data = GamesByYear, color = "#5D3FD3")
plt.title("Amount of Video Games Released by Year")
plt.xlabel("Release Year")
plt.xlim(None, 2023)
plt.ylabel("Number of Games")
plt.show()
In [10]:
GamesByYear = VideoGameDF["Release Year"].value_counts().reset_index()
GamesByYear.columns = ["Release Year", "Number of Games"]
GamesByYear = GamesByYear.sort_values("Release Year")

sns.lineplot(x = "Release Year", y = "Number of Games", data = GamesByYear)
plt.title("Amount of Video Games Released from 2013 - 2023")
plt.xlabel("Release Year")
plt.xlim(2013, 2023)
plt.ylabel("Number of Games")

plt.axvline(x = 2020, linestyle = "dotted", color = "r", label = "Beginning year of the COVID-19 pandemic")
plt.axvline(x = 2022, linestyle = "dotted", color = "r", label = "End year of the COVID-19 pandemic")

plt.legend(loc = "center left", bbox_to_anchor = (1, 0.5))
plt.show()

To find the integral (area under the curve) of the amount of video games released during the COVID-19 pandemic, we can simply use the "Release Year" values from the original dataframe and find the sum from the years 2020 to 2022.¶

In [11]:
COVIDPeriod_Integral = GamesByYear[(GamesByYear["Release Year"] >= 2020) &
                            (GamesByYear["Release Year"] <= 2022)]["Number of Games"].sum()

ModernDay_Integral = GamesByYear[(GamesByYear["Release Year"] >= 2013) &
                            (GamesByYear["Release Year"] <= 2023)]["Number of Games"].sum()

print(f"During the COVID-19 pandemic, there was approximately a total of {COVIDPeriod_Integral} video games released.")
print(f"\nHowever, as of June 2023, at least {ModernDay_Integral} video games have released since 2013.")
During the COVID-19 pandemic, there was approximately a total of 6204 video games released.

However, as of June 2023, at least 20213 video games have released since 2013.

Data Processing & Cleaning for Machine Learning¶

In [12]:
# The following Python packages will be used for conducting feature engineering and the NLP process
import nltk
from nltk.corpus import stopwords
from nltk.stem import PorterStemmer
from nltk.tokenize import word_tokenize
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity

If a certain video game has no given summary, NLP cannot be performed on it to give recommendations. If a game also has no recorded average rating it cannot be filtered properly, which can lead to inaccurate results.¶

In [13]:
VideoGameDF = VideoGameDF.drop("Rating Range", axis = 1) # Since the ratings will be displayed, keeping the range is unnecessary
VideoGameDF.dropna(subset = ["Summary"], inplace = True)
VideoGameDF.dropna(subset = ["Average Rating"], inplace = True)

# We will only be using data from games that are relatively popular & widely supported to avoid unfavorable results
VideoGameDF = VideoGameDF.loc[(VideoGameDF["Average Rating"] >= 3.5) & (VideoGameDF["Total Players"] >= 5000)]
VideoGameDF.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 413 entries, 0 to 1368
Data columns (total 9 columns):
 #   Column          Non-Null Count  Dtype  
---  ------          --------------  -----  
 0   Title           413 non-null    object 
 1   Release Year    413 non-null    int32  
 2   Developers      413 non-null    object 
 3   Summary         413 non-null    object 
 4   Platforms       413 non-null    object 
 5   Genres          413 non-null    object 
 6   Average Rating  413 non-null    float64
 7   Total Players   413 non-null    int64  
 8   Total Reviews   413 non-null    int64  
dtypes: float64(1), int32(1), int64(2), object(5)
memory usage: 30.7+ KB

Feature Engineering for NLP¶

In [14]:
# Preprocessing setup
stop_words = set(stopwords.words('english'))
stemmer = PorterStemmer()

def preprocess_text(text):
    tokens = word_tokenize(text.lower())
    filtered_tokens = [w for w in tokens if not w in stop_words]
    stemmed_tokens = [stemmer.stem(w) for w in filtered_tokens]
    return " ".join(stemmed_tokens)

# Preprocess descriptions
VideoGameDF['NLP-Processed Text'] = VideoGameDF['Summary'].apply(preprocess_text)
In [15]:
# TF-IDF Vectorizer
tfidf_vectorizer = TfidfVectorizer()
tfidf_matrix = tfidf_vectorizer.fit_transform(VideoGameDF['NLP-Processed Text'])

def recommend_games(game_index, tfidf_matrix, VideoGameDF, top_n = 5):
    # Get the title of the game used as the basis for recommendation
    base_game_title = VideoGameDF.iloc[game_index]['Title'].lower()
    
    # Compute cosine similarities
    cosine_similarities = cosine_similarity(tfidf_matrix[game_index], tfidf_matrix).flatten()
    
    # Get the indices of the games sorted by similarity
    similar_indices = cosine_similarities.argsort()[::-1]
    
    # Filter out games with the same title or very similar titles
    filtered_indices = []
    for i in similar_indices:
        # Skip the game itself
        if i == game_index:
            continue

        # Check if the title of the similar game is different enough from the base game title
        similar_game_title = VideoGameDF.iloc[i]['Title'].lower()
        if base_game_title not in similar_game_title:
            filtered_indices.append(i)
        
        # Stop when we have enough recommendations
        if len(filtered_indices) == top_n:
            break
    
    return VideoGameDF.iloc[filtered_indices]
In [16]:
def display_game_recommendations(game_index, tfidf_matrix, VideoGameDF, top_n = 5):
    # Display original game information as a single-row DataFrame
    print("If you liked this video game:")
    display(VideoGameDF.iloc[[game_index]])  # Use double brackets to keep it as a DataFrame

    # Get recommended games using the provided 'recommend_games' function
    recommended_games = recommend_games(game_index, tfidf_matrix, VideoGameDF, top_n)

    # Print top N recommended games
    print(f"You may also enjoy these {top_n} popular video games!")
    display(recommended_games)

Machine Learning Test Cases¶

In [17]:
display_game_recommendations(0, tfidf_matrix, VideoGameDF)
If you liked this video game:
Title Release Year Developers Summary Platforms Genres Average Rating Total Players Total Reviews NLP-Processed Text
0 Elden Ring 2022 FromSoftware, Bandai Namco Entertainment Elden Ring is a fantasy, action and open world... Windows PC, PlayStation 4, Xbox One, PlayStati... Adventure, RPG 4.5 21000 3000 elden ring fantasi , action open world game rp...
You may also enjoy these 5 popular video games!
Title Release Year Developers Summary Platforms Genres Average Rating Total Players Total Reviews NLP-Processed Text
65 Dark Souls 2011 Bandai Namco Entertainment, FromSoftware An action RPG and spiritual sequel to Demon's ... Windows PC, Xbox 360, PlayStation 3 Adventure, RPG 4.3 16000 857 action rpg spiritu sequel demon 's soul player...
429 Final Fantasy VIII 1999 Square, Square Enix Final Fantasy VIII is the eighth main installm... Windows PC, PlayStation 3, PlayStation, PlaySt... Adventure, RPG 3.7 5600 276 final fantasi viii eighth main instal final fa...
199 Final Fantasy IX 2000 Square, Square Electronic Arts Final Fantasy IX is the ninth main installment... PlayStation 3, PlayStation, PlayStation Vita, ... RPG, Turn Based Strategy 4.3 7500 368 final fantasi ix ninth main instal ff seri . t...
186 Monster Hunter Rise 2021 Capcom, Capcom Development Division 2 Rise to the challenge and join the hunt! In Mo... Windows PC, PlayStation 4, Xbox One, PlayStati... Adventure, Brawler, RPG 3.9 6800 505 rise challeng join hunt ! monster hunter rise ...
484 The Elder Scrolls V: Skyrim - Special Edition 2016 Bethesda Game Studios, Bethesda Softworks Skyrim special edition is a remaster of the cl... Windows PC, PlayStation 4, Xbox One, PlayStati... Adventure, RPG 4.0 7700 362 skyrim special edit remast classic 2011. upgra...
In [18]:
display_game_recommendations(14, tfidf_matrix, VideoGameDF)
If you liked this video game:
Title Release Year Developers Summary Platforms Genres Average Rating Total Players Total Reviews NLP-Processed Text
17 Bloodborne 2015 FromSoftware, Sony Computer Entertainment An action RPG in which the player embodies a H... PlayStation 4 Adventure, RPG 4.5 20000 1600 action rpg player embodi hunter , transfus mys...
You may also enjoy these 5 popular video games!
Title Release Year Developers Summary Platforms Genres Average Rating Total Players Total Reviews NLP-Processed Text
186 Monster Hunter Rise 2021 Capcom, Capcom Development Division 2 Rise to the challenge and join the hunt! In Mo... Windows PC, PlayStation 4, Xbox One, PlayStati... Adventure, Brawler, RPG 3.9 6800 505 rise challeng join hunt ! monster hunter rise ...
338 Dying Light 2015 WB Games, Techland Dying Light is a first-person, action survival... Windows PC, Mac, Xbox 360, Linux, PlayStation ... Adventure, RPG, Shooter 3.6 9600 444 die light first-person , action surviv horror ...
65 Dark Souls 2011 Bandai Namco Entertainment, FromSoftware An action RPG and spiritual sequel to Demon's ... Windows PC, Xbox 360, PlayStation 3 Adventure, RPG 4.3 16000 857 action rpg spiritu sequel demon 's soul player...
272 Monster Hunter: World 2018 Capcom Welcome to a new world! Take on the role of a ... Windows PC, PlayStation 4, Xbox One Adventure, RPG 3.8 12000 441 welcom new world ! take role hunter slay feroc...
470 Kirby's Adventure 1993 HAL Laboratory, Nintendo Not everything is well in Dream Land. For some... Wii U, Wii, NES, Family Computer (FAMICOM) Platform 3.6 6700 342 everyth well dream land . mysteri reason , dre...
In [19]:
display_game_recommendations(4, tfidf_matrix, VideoGameDF)
If you liked this video game:
Title Release Year Developers Summary Platforms Genres Average Rating Total Players Total Reviews NLP-Processed Text
4 Undertale 2015 tobyfox, 8-4 A small child falls into the Underground, wher... Windows PC, Mac, Linux, PlayStation 4, Xbox On... Adventure, Indie, RPG, Turn Based Strategy 4.2 32000 2500 small child fall underground , monster long ba...
You may also enjoy these 5 popular video games!
Title Release Year Developers Summary Platforms Genres Average Rating Total Players Total Reviews NLP-Processed Text
184 Deltarune: Chapter 1 2018 tobyfox, 8-4 The story follows a human named Kris who lives... Windows PC, Mac, PlayStation 4, Nintendo Switch Adventure, Indie, RPG, Turn Based Strategy 3.9 13000 678 stori follow human name kri live world inhabit...
174 Detroit: Become Human 2018 Quantic Dream, Sony Interactive Entertainment Detroit: Become Human puts the destiny of both... Windows PC, PlayStation 4 Adventure, Puzzle 3.5 13000 752 detroit : becom human put destini mankind andr...
58 The Legend of Zelda: Ocarina of Time 1998 Nintendo EAD, Nintendo The Legend of Zelda: Ocarina of Time is the fi... Wii U, Wii, Nintendo 64 Adventure, RPG 4.3 20000 958 legend zelda : ocarina time fifth main instal ...
50 The Last of Us Part II 2020 Naughty Dog, Sony Interactive Entertainment The Last of Us Part II is an action-adventure ... PlayStation 4 Adventure, Shooter 4.1 15000 1500 last us part ii action-adventur game set five ...
6 Omori 2020 OMOCAT, PLAYISM A turn-based surreal horror RPG in which a chi... Windows PC, Mac, PlayStation 4, Xbox One, Nint... Adventure, Indie, RPG, Turn Based Strategy 4.1 8700 1400 turn-bas surreal horror rpg child travers vari...
In [20]:
display_game_recommendations(6, tfidf_matrix, VideoGameDF)
If you liked this video game:
Title Release Year Developers Summary Platforms Genres Average Rating Total Players Total Reviews NLP-Processed Text
6 Omori 2020 OMOCAT, PLAYISM A turn-based surreal horror RPG in which a chi... Windows PC, Mac, PlayStation 4, Xbox One, Nint... Adventure, Indie, RPG, Turn Based Strategy 4.1 8700 1400 turn-bas surreal horror rpg child travers vari...
You may also enjoy these 5 popular video games!
Title Release Year Developers Summary Platforms Genres Average Rating Total Players Total Reviews NLP-Processed Text
91 EarthBound 1994 Nintendo, Creatures Inc. A turn-based JRPG and sequel to then-Japan-onl... Wii U, Super Famicom, SNES, New Nintendo 3DS Adventure, RPG, Turn Based Strategy 4.2 10000 723 turn-bas jrpg sequel then-japan-onli earthboun...
208 Little Nightmares 2017 Tarsier Studios, Bandai Namco Entertainment Immerse yourself in Little Nightmares, a dark ... Windows PC, PlayStation 4, Xbox One, Nintendo ... Adventure, Platform, Puzzle 3.7 9200 471 immers littl nightmar , dark whimsic tale conf...
4 Undertale 2015 tobyfox, 8-4 A small child falls into the Underground, wher... Windows PC, Mac, Linux, PlayStation 4, Xbox On... Adventure, Indie, RPG, Turn Based Strategy 4.2 32000 2500 small child fall underground , monster long ba...
89 Terraria 2011 Re-Logic, Headup Games Dig, Fight, Explore, Build: The very world is ... Windows PC, Android, Mac, Wii U, Xbox 360, Lin... Adventure, Indie, Platform, RPG, Simulator, St... 4.0 21000 1200 dig , fight , explor , build : world fingertip...
240 Ori and the Will of the Wisps 2020 Moon Studios, Xbox Game Studios The little spirit Ori is no stranger to peril,... Windows PC, Xbox One, Nintendo Switch, Xbox Se... Adventure, Platform 4.3 7000 419 littl spirit ori stranger peril , fate flight ...
In [21]:
display_game_recommendations(31, tfidf_matrix, VideoGameDF)
If you liked this video game:
Title Release Year Developers Summary Platforms Genres Average Rating Total Players Total Reviews NLP-Processed Text
36 Sekiro: Shadows Die Twice 2019 FromSoftware, Activision Enter a dark and brutal new gameplay experienc... Windows PC, PlayStation 4, Xbox One, Google St... Adventure, Brawler 4.4 16000 1200 enter dark brutal new gameplay experi creator ...
You may also enjoy these 5 popular video games!
Title Release Year Developers Summary Platforms Genres Average Rating Total Players Total Reviews NLP-Processed Text
86 Dark Souls: Remastered 2018 Bandai Namco Entertainment, QLOC Dark Souls Remastered is a remastered version ... Windows PC, PlayStation 4, Xbox One, Nintendo ... Adventure, RPG 4.3 13000 944 dark soul remast remast version origin game da...
76 Yakuza: Like a Dragon 2020 Sega, Ryƫ Ga Gotoku Studios Become Ichiban Kasuga, a low-ranking yakuza gr... Windows PC, PlayStation 4, Xbox One, PlayStati... Adventure, RPG, Turn Based Strategy 4.3 6900 741 becom ichiban kasuga , low-rank yakuza grunt l...
30 Dark Souls III 2016 Bandai Namco Entertainment, FromSoftware Dark Souls continues to push the boundaries wi... Windows PC, PlayStation 4, Xbox One Adventure, RPG 4.2 22000 1400 dark soul continu push boundari latest , ambit...
172 Assassin's Creed II 2009 Ubisoft Montreal, Ubisoft Entertainment Discover an intriguing and epic story of power... Windows PC, Mac, Xbox 360, iOS, PlayStation 3 Adventure, Platform 3.8 18000 613 discov intrigu epic stori power , reveng consp...
137 Dark Souls II: Scholar of the First Sin 2015 Bandai Namco Entertainment, FromSoftware 'Dark Souls II: Scholar of the First Sin' is a... Windows PC, Xbox 360, PlayStation 4, PlayStati... Adventure, RPG 3.5 13000 872 'dark soul ii : scholar first sin ' upgrad bun...